// index.js
// 获取应用实例
const app = getApp()

Page({
  data: {
    // 用户信息
    userInfo: {},
    hasUserInfo: false,

    // 公告
    noticeShow: false,
    noticeInfo: "",

    // 轮播图
    bannerList: [],
    indicatorDots: true,
    autoplay: false,
    interval: 2000,
    duration: 500,

    // 历史记录按钮
    slideButtons: [{
      text: '复制链接',
    }, {
      text: '复制密码',
      extClass: 'test',
    }, {
      type: 'warn',
      text: '删除',
      extClass: 'test',
    }],
    // 历史记录列表
    historyList: [],
    // 剩余查询次数
    hit: 0,

    // 文本框数据
    diskLink: ''
  },


  onLoad() {
    app.checkLogin() // 验证用户在服务器的登录状态
    // 验证用户信息
    app.checkUserInfo(res => {
      this.setData({
        userInfo: res,
        hasUserInfo: true
      })
    })
    this.getNoticeInfo(); // 获取公告
    this.getBannerList(); // 获取轮播图信息
    this.getQueryHistoryList(); // 获取查询历史记录
  },

  // 获取公告
  getNoticeInfo() {
    app.request(app.config.noticeInfo, {}, 'GET', 'nav', res => {
      this.setData({
        loading: false
      })
      wx.stopPullDownRefresh()
      if (res.status === 200) {
        this.setData({
          noticeShow: res.data.show,
          noticeInfo: res.data.content
        })
      } else {
        app.showToast(res.msg)
      }
    }, err => {
      this.setData({
        loading: false
      })
      wx.stopPullDownRefresh()
    })
  },

  // 获取轮播图信息
  getBannerList() {
    app.request(app.config.bannerList, {}, 'GET', 'nav', res => {
      this.setData({
        loading: false
      })
      wx.stopPullDownRefresh()
      if (res.status === 200) {
        this.setData({
          bannerList: res.data
        })
      } else {
        app.showToast(res.msg)
      }
    }, err => {
      this.setData({
        loading: false
      })
      wx.stopPullDownRefresh()
    })
  },

  // 获取查询历史记录
  getQueryHistoryList() {
    let authToken = wx.getStorageSync('auth-token')
    if (!authToken) {
      return false
    }

    app.request(app.config.queryLogList, {}, 'GET', 'nav', res => {
      wx.stopPullDownRefresh()
      if (res.status === 200) {
        this.data.historyList = res.data.list
        this.data.hit = res.data.hit
        this.setData({
          historyList: this.data.historyList,
          hit: this.data.hit
        })
      } else {
        app.showToast(res.msg)
      }
    }, err => {
      wx.stopPullDownRefresh()
    })
  },

  // 历史记录点击
  slideButtonTap(e) {
    let manageId = e.detail.index // 操作类型
    switch (manageId) {
      case 0: // 复制链接
        let diskLink = e.currentTarget.dataset.link // 网盘链接
        this.hangleSetClipboardData(diskLink)
        break;
      case 1: // 复制密码
        let diskPass = e.currentTarget.dataset.pass // 网盘密码
        this.hangleSetClipboardData(diskPass)
        break;
      case 2: // 删除
        let logId = e.currentTarget.dataset.id
        app.request(app.config.delQueryLog, {
          log_id: logId
        }, 'DELETE', 'nav', res => {
          wx.stopPullDownRefresh()
          if (res.status === 200) {
            app.showToast("删除成功")
            this.getQueryHistoryList()
          } else {
            app.showToast(res.msg)
          }
        }, err => {
          wx.stopPullDownRefresh()
        })
        break;
    }
  },

  // 复制到剪贴板
  hangleSetClipboardData(data) {
    wx.setClipboardData({
      data: data,
      success: function (res) {
        wx.getClipboardData({
          success: function (res) {
            wx.showToast({
              title: '复制成功'
            })
          }
        })
      }
    })
  },

  getUserProfile(e) {
    // 验证用户信息
    app.checkUserInfo(res => {
      this.setData({
        userInfo: res,
        hasUserInfo: true
      })
      this.getQueryHistoryList()
    })
  },

  // 保存文本框数据
  saveDiskLink(res) {
    this.data.diskLink = res.detail.value
    this.setData({
      diskLink: this.data.diskLink
    })
  },

  // 查询网盘链接密码
  onSearchDiskPass() {
    // 验证用户在服务器的登录状态
    let authToken = wx.getStorageSync('auth-token')
    if (!authToken) {
      app.checkLogin()
      return false
    }
    // 验证用户信息是否已获取
    if (!this.data.hasUserInfo) {
      app.checkUserInfo(res => {
        this.setData({
          userInfo: res,
          hasUserInfo: true
        })
      })
      return false
    }
    // 获得网盘链接
    let diskLink = this.data.diskLink
    if (diskLink == '') {
      app.showModal("请输入网盘链接 或 链接后六位")
      return false
    }
    // 验证网盘链接是否存在
    app.request(app.config.isShareLink, {
      disk_link: diskLink
    }, 'GET', 'nav', res => {
      wx.stopPullDownRefresh()
      if (res.status !== 200) {
        app.showModal(res.msg)
      }
    }, err => {
      wx.stopPullDownRefresh()
    })
    // 查看网盘链接密码
    this.handleonSearchDiskPass(diskLink)
  },
  // 查看网盘链接密码
  handleonSearchDiskPass(diskLink) {
    // 查询网盘密码
    app.request(app.config.queryShareLink, {
      disk_link: diskLink
    }, 'POST', 'nav', res => {
      wx.stopPullDownRefresh()
      if (res.status === 200) {
        wx.showModal({
          title: '密码为',
          content: res.msg,
          showCancel: false,
        })
        this.data.diskLink = ''
        this.setData({
          diskLink: ''
        })
        this.getQueryHistoryList(); // 获取查询历史记录
      } else {
        app.showToast(res.msg, 2000)
      }
    }, err => {
      wx.stopPullDownRefresh()
    })
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    app.checkLogin() // 验证用户在服务器的登录状态
    // 验证用户信息
    app.checkUserInfo(res => {
      this.setData({
        userInfo: res,
        hasUserInfo: true
      })
    })
    this.getNoticeInfo(); // 获取公告
    this.getBannerList(); // 获取轮播图信息
    this.getQueryHistoryList(); // 获取查询历史记录
  },

})